/**
 * 文件：D.java
 * 功能：查找字符串的最小重复子串模式，并输出模式重复的次数
 * 算法：通过遍历可能的子串长度，使用正则表达式验证字符串是否由该子串重复构成
 */

import java.io.File;        // 文件操作相关类
import java.io.FileReader;  // 文件读取相关类
import java.io.IOException; // 异常处理类
import java.util.Scanner;   // 输入处理类
import java.util.regex.Pattern; // 正则表达式处理类

/**
 * Main类：程序主类，实现字符串重复模式检测功能
 */
public class Main {
    // 静态Scanner对象，用于读取输入
    static Scanner cin = null;

    // 静态初始化块：尝试从文件读取输入，失败则使用标准输入
    static {
        try {
            // 尝试打开并读取D.in文件
            cin = new Scanner(new FileReader(new File("D.in")));
        } catch (IOException e) {
            // 如果文件打开失败（如文件不存在），则使用标准输入
            cin = new Scanner(System.in);
        }
    }

    /**
     * 主函数：程序入口
     * @param args 命令行参数
     */
    public static void main(String[] args) {
        // 循环读取每一行输入
        while (cin.hasNextLine()) {
            // 获取当前行字符串，例如 "abcabcabcabc"
            String line = cin.nextLine();
            // 获取字符串长度，例如 "abcabcabcabc" 的长度为12
            int len = line.length();
            
            // 遍历可能的子串长度n，从1到长度的一半
            // 因为重复子串至少出现两次，所以n最大为长度的一半
            for (int n = 1; n <= len / 2; n++) {
                // 如果字符串长度不能被n整除，说明无法由长度为n的子串重复构成，跳过
                if (len % n != 0) continue;
                
                // 构建正则表达式：以长度为n的前缀为模式，使用+表示重复一次或多次
                // 例如n=3时，模式为"(abc)+"，可以匹配"abc"、"abcabc"等
                String regex = String.format("^(%s)+$", line.substring(0, n));
                
                // 使用正则表达式匹配整个字符串
                if (Pattern.matches(regex, line)) {
                    // 如果匹配成功，输出重复次数（总长度/子串长度）
                    System.out.println(len / n);
                    // 跳出循环，处理下一行输入
                    break;
                }
            }
        }
    }
}
